const jwt = require('jsonwebtoken')

function sign(option) {
    const JJ = jwt.sign(option, 'abc', {
        expiresIn: 86400 // 24小时过期
    })
    console.log(JJ);
    return JJ
}

// 解析token，进行验证
function verify() {
    return async (ctx, next) => {
        // 前端Authorization 后端authorization
        let token = ctx.request.headers.authorization
        // console.log(token, '111');

        if (token) {
            // 校验
            try {
                const decoded = jwt.verify(token, 'abc')

                if (decoded.id) { // 合法的 token
                    ctx.user_id = decoded.id
                    await next()
                }
            } catch (err) {
                console.log(err);

                ctx.body = {
                    code: 401,
                    data: null,
                    msg: 'token 已过期'
                }
            }
        } else {
            ctx.body = {
                code: 401,
                data: null,
                msg: 'token 不存在'
            }
        }
    }
}

module.exports = {
    sign,
    verify
}